The present invention relates in general to routing of telephony data packets and in particular to methods and systems for efficiently routing cellular telephony system data packets using direct memory access (DMA) while providing monitoring capability for predefined system parameters.
When cellular telephone messages, such as those used in PCS (personal communication service) are digitized, they are typically bundled into a plurality of data packets and transmitted over serial links to receiving parties. In a BSC (base station controller) the receiving parties may be either MSs (mobile stations) or land line entities. In the process, the data packets may pass through one or more entities known in the industry as routers. A router receives messages from a given link and redirects the message to one or more other links. In other words, a message may be directed to a single recipient or it may be broadcast to a plurality of destinations on a plurality of links. Since messages from multiple source links may be substantially simultaneously directed to a single destination link, routers need to provide some sort of temporary storage for messages when traffic prevents immediate output of received data packets. Usually this comprises a FIFO (first in first out) procedure which basically operates to cause messages awaiting output to be delayed until all previously received messages for a specific output link have been transmitted. A priority mechanism for data packets waiting to be acted upon is also required. Further, routers need to be able to direct incoming messages to the appropriate output link. An address provided with the message is examined and a decision is made by some entity in the router that messages having a given range of addresses, including the present address, should be directed to a specific output link.
Prior art PCS routers, known to the present inventors, when broadcasting a message, occasionally would direct messages back to a source link whereby a loop was created which overloaded a router to a point of uselessness. While prior art routers could copy all messages bound for a given active output link to an alternate router output for test and monitoring purposes, such prior art routers did not have similar copying and monitoring capability for incoming links. Further, prior art router systems were typically designed (over-designed) for worst case scenarios as there was no method of monitoring overall system capacity usage or individual output link usage. Such over-design results in increased costs for equipment that may well be underutilized. Finally, known prior art systems in cellular telephony systems have required a plurality of cards interconnected to a bus to provide the routing function with the potential of system inoperability from poor electrical contact between the cards and the bus.
A router having a design that may be accommodated on a single card would minimize contact failure problems. Further, a design that allows monitoring of number of bytes and/or packets received on input links may provide useful data in the form of excessive usage by a data packet source, excessive source link induced errors and relative destination distribution of messages input to a router from a source link as well as system capacity capability per source link. Monitoring the FIFO level of an output link may provide useful information for redistributing addresses assigned to a given output link. Monitoring total messages flowing through a router per unit of time may provide similar information for redistributing the total number of addresses for which a given link of the router is responsible.
Therefore a router that can provide all the above mentioned monitoring functions, can be configured to minimize broadcast looping situations, can minimize electrical contact problems, can allow operation closer to its design intent and still be physically more compact than the prior art would be a useful and desirable device.
The present invention comprises a router utilizing RAM (random access memory) for both temporary message packet storage and a message address to packet router output link lookup table. The design of the router permits monitoring of various parameters of input and output link messages as well as overall router usage for system optimization.